热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

golang作为server向android提供数据服务

中间交换的数据是json,后台数据库服务器是sqlserver2012android通过post或者get方式访问如get方式http:192.168.255.13:7080tblFi

中间交换的数据是json ,后台数据库服务器是sqlserver2012

android通过post或者get方式访问

如get方式http://192.168.255.13:7080/tblFileList?tblFileList2_Title_search1=t01

  1 package main
  2 
  3 import (    
  4     "time"
  5     "log"
  6     "net/http"    
  7     "os"
  8     _ "code.google.com/p/odbc"
  9     "database/sql"    
 10     "fmt"
 11     "encoding/json"
 12 )
 13 
 14 //http://192.168.255.13:7080/tblFileList?tblFileList2_Title_search1=t01
 15 
 16 func get_tblFileList(w http.ResponseWriter, r *http.Request) {
 17 
 18     log.Print(r.RequestURI)    
 19     tblFileList2_Title_search1 := r.FormValue("tblFileList2_Title_search1")
 20     tblFileList2_Title_search2 := r.FormValue("tblFileList2_Title_search2")
 21     
 22     fmt.Println("参数:",tblFileList2_Title_search1,tblFileList2_Title_search2)
 23     list:= getData(tblFileList2_Title_search1,tblFileList2_Title_search2)
 24     body, err := json.Marshal(list)
 25     if err == nil{
 26         w.Write(body)
 27     }else{
 28         w.Write([]byte("error"))
 29     }
 30     
 31 }
 32 
 33 
 34 func login(w http.ResponseWriter, r *http.Request) {
 35     w.Write([]byte("token=123"))
 36 }
 37 func main() {
 38 
 39     http.HandleFunc("/tblFileList", get_tblFileList)
 40     http.HandleFunc("/login", login)
 41 
 42     log.Println("Start serving on port 7080")
 43     
 44 
 45     err := http.ListenAndServe(":7080", nil)
 46     if err != nil{
 47         fmt.Println(err)
 48     }
 49     
 50     os.Exit(0)
 51 }
 52 
 53 func getData(filter1 string ,filter2 string) []tblFileList {
 54     conn, err := sql.Open("odbc", "driver={SQL Server Native Client 11.0};server=test;database=db1;uid=sa;pwd=sa1234;")
 55     if err != nil {
 56         fmt.Println("Connecting Error")
 57         return nil
 58     }
 59     defer conn.Close()
 60     filter_where :="1=1 "
 61     if filter1!=""{
 62         filter_where += " and title like '" + filter1 + "%'"
 63     } 
 64     if filter2!=""{
 65         filter_where += " and title like '%" + filter2 + "%'"
 66     } 
 67 
 68     zsql :=`select 
 69             Title,
 70             ReadCount,
 71             LastReadUser,
 72             isnull(LastReadTime,cast('1900-01-01' as datetime)) as LastReadTime  
 73             from tblFileList     where ` + filter_where
 74     log.Println(zsql)
 75     stmt, err := conn.Prepare(zsql)
 76     if err != nil {
 77         fmt.Println("Query Error", err)
 78         return nil
 79     }
 80     defer stmt.Close()
 81     row, err := stmt.Query()
 82     if err != nil {
 83         fmt.Println("Query Error", err)
 84         return nil
 85     }
 86     defer row.Close()
 87 
 88     rowlist :=[]tblFileList{}
 89     for row.Next() {
 90         var Title string
 91         var ReadCount int
 92         var LastReadUser string
 93         var LastReadTime time.Time        
 94         if err := row.Scan(&Title, &ReadCount, &LastReadUser, &LastReadTime); err == nil {
 95             //fmt.Println(Title, ReadCount,LastReadUser,LastReadTime)
 96             var detail tblFileList
 97 
 98             detail.Title  = Title
 99             detail.ReadCount = ReadCount
100             detail.LastReadUser = LastReadUser
101             detail.LastReadTime = LastReadTime            
102             if err != nil {
103                 panic(err.Error())
104             }
105             rowlist = append(rowlist,detail,)
106 
107         } else {
108             fmt.Println("data Error", err)
109         }
110     }
111     
112     fmt.Printf("%s\n", "finish" ,len(rowlist))
113     return rowlist;
114 }
115 
116 type tblFileList struct {
117     Title   string    `json:"Title"`
118     ReadCount  int   `json:"ReadCount"`
119     LastReadUser   string    `json:"LastReadUser"`
120     LastReadTime   time.Time    `json:"LastReadTime"`
121 }

 


推荐阅读
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
author-avatar
丿车荣璇
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有